--- title: "04-Session + Cookie + Redis 模式实现详解" created: 2025-12-04 tags: - 项目 aliases: - Session + Cookie + Redis 模式实现详解 --- # Session + Cookie + Redis 模式实现详解 ## **一、整体架构概览** ![[Session_+_Cookie_+_Redis整体框架-0492033c.jpg]] ## **二、项目结构说明** ![[结构说明-ce78d828.jpg]] ## **三、配置管理机制** ### **3.1 三层配置架构** ![[三层配置架构-51520bf2.jpg]] ### **3.2 环境变量映射规则** ```text ┌──────────────────────────────────────────────────────────────────┐ │ YAML 配置 → 环境变量 自动转换规则 │ ├──────────────────────────────────────────────────────────────────┤ │ │ │ YAML 路径 环境变量名 │ │ ───────────────────────── ────────────────────────────── │ │ app.name → APP_NAME │ │ app.session.store-type → APP_SESSION_STORE_TYPE │ │ app.session.timeout-minutes → APP_SESSION_TIMEOUT_MINUTES │ │ app.jwt.secret → APP_JWT_SECRET │ │ │ │ 转换规则: │ │ 1. 点(.) 替换为 下划线(_) │ │ 2. 横杠(-) 替换为 下划线(_) │ │ 3. 全部转大写 │ │ │ └──────────────────────────────────────────────────────────────────┘ ``` ## **四、Session 存储策略模式** ### **4.1 策略模式实现** ![[策略模式实现-80764380.jpg]] ### **4.2 内存存储实现细节** ![[内存存储实现细节-d3bc5451.jpg]] ### **4.3 Redis 存储实现细节** ![[Redis_存储实现细节-bb6f5d55.jpg]] ## **五、登录认证流程** ### **5.1 用户登录流程** ![[用户登录流程-ede190fc.jpg]] ### **5.2 请求认证流程** ![[请求认证流程-c096fc9b.jpg]] ## **六、Cookie 安全特性** ### **6.1 安全配置详解** ![[Cookie_安全特性-f4929deb.jpg]] ### **6.2 开发 vs 生产环境对比** ![[开发_vs_生产环境-51303087.jpg]] ## **七、滑动窗口机制** ![[滑动窗口机制-ce3ec307.jpg]] ## **八、单点登录机制** ![[单点登录机制-cca62a64.jpg]] ## **九、关键代码调用链** ![[关键代码调用链-e846ddab.jpg]] ## **十、总结** 这套 Session + Cookie + Redis 模式实现了一个**完整的用户认证系统**,核心要点: | **特性** | **说明** | | --- | --- | | **策略模式** | SessionStore 接口抽象,内存/Redis 实现可切换 | | **条件装配** | 根据配置自动选择存储实现 | | **三层配置** | yml 默认值 → profile 特定 → 环境变量覆盖 | | **安全Cookie** | HttpOnly + Secure + SameSite 多重防护 | | **滑动窗口** | 活跃用户自动续期 | | **单点登录** | 新登录踢掉旧设备 | | **分布式支持** | Redis 存储支持集群部署 | --- **项目分区导航**:⬅️ [[03-session单模式登录+鉴权流程流程一览|03-session单模式登录+鉴权流程流程一览]] | 04-Session + Cookie + Redis 模式实现详解 | ➡️ [[2-Learning/05-项目/05-最佳实践/05-登录鉴权/05-ZwwwSpringBootBaseTemplate工程模板|05-ZwwwSpringBootBaseTemplate工程模板]]